package br.com.model;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;


public class Pergunta {

	private int idPergunta;
	private String pergunta;
	private Resposta resposta;
	private Resposta respondido;
	private List<Resposta> alternativas;

	public Pergunta() {
		this.idPergunta = 0;
		this.pergunta = "";
		this.resposta = new Resposta();
		this.setRespondido(new Resposta());
		this.alternativas = new ArrayList<Resposta>();
		// adiciona a resposta correta nas alternativas
	}

	public int getIdPergunta() {
		return idPergunta;
	}

	public void setIdPergunta(int idPergunta) {
		this.idPergunta = idPergunta;
	}

	public String getPergunta() {
		return pergunta;
	}

	public void setPergunta(String pergunta) {
		this.pergunta = pergunta;
	}

	public Resposta getResposta() {
		return resposta;
	}

	public void setResposta(Resposta resposta) {
		this.resposta = resposta;
		this.alternativas.add(resposta);
	}

	public Resposta getRespondido() {
		return respondido;
	}

	public void setRespondido(Resposta respondido) {
		this.respondido = respondido;
	}

	public List<Resposta> getAlternativas() {
		Random rand = new Random();
		Resposta aux;
		int j, y;
		// troca de lugar 3 vezes pra ficar bem embaralhado
		if (alternativas.size()==3) {
			for (int i = 0; i < 3; i++) {
				j = rand.nextInt(2);
				y = rand.nextInt(2);
				aux = alternativas.get(j);
				alternativas.set(j, alternativas.get(y));
				alternativas.set(y, aux);
			}
		}

		return alternativas;
	}

	public void setAlternativas(List<Resposta> alternativas) {
		this.alternativas = alternativas;
	}

	// adiciona as alternativas da pergunta apenas se a resposta for diferente a
	// resposta certa e se ainda n tem as 3 alternativas
	public void addAlternativa(Resposta resposta) {
		if (this.resposta.getIdResposta() != resposta.getIdResposta()
				&& alternativas.size() < 3) {
			alternativas.add(resposta);
		}
	}
}
